INDEXING CRIB SHEET

You will need the package makeidx.sty and you will need to type two 
commands to the root file (which I will assume is called book.tex).

These commands are
\makeindex,
which goes before the \begin{document} line, and
\printindex,
which goes right before the \end{document} command.

Then you need to code the text so that LaTeX knows what terms 
to index, and how to organise them.

If for example the text says
... chocolate cake...

then you can get this indexed simply by adjusting the source code 
to read
... chocolate cake\index{chocolate cake}...

If you also want a subentry
cake, chocolate

then you should adjust the source file to read
... chocolate cake\index{chocolate cake}\index{cake!chocolate}...

Running the makeindex program will create an index which contains, 
in the correct alphabetical order, a reference to
chocolate cake,
with the correct page number, and a second reference to
cake, chocolate
again with the right page number. Moreover, it will collect all 
instances of chocolate cake and list them under the same entry, 
and it will collect all instances of cake and the subentries to it.

You can also have subentries to subentries:
\index{cake!chocolate!Belgian}

If the text doesn't actually say `chocolate cake', but you want 
that in the index, then you should simply type \index{chocolate cake} 
into the source file. The basic \index command in LaTeX does not 
print anything in its argument but merely `writes', or `copies' it 
to a different file called the .idx file. (The makeindex program 
turns the .idx file into an .ind file, which is the one in which all 
terms are grouped together in alphabetical order, with all instances, 
and no duplications, i.e. no instances of 123, 123. The .ind will not 
change automatically, even when the .idx file changes. The .ind file 
only updates when you run makeindex again.)

You can also do other things.

Page range:
if cake appears over several consecutive pages, then mark the first 
instance with
\index{cake|(}  (say on page 5}
and the final one by 
\index{cake|)} (say on page 10).
Then the index will read
cake, 5--10.
The above works with subentries too.

"See" cross references:
If you want the index to read
cake, chocolate; see chocolate cake
then type
\index{cake!chocolate|see chocolate, cake}

Alphabetizing symbols correctly:
If you want symbols put in the correct alphabetical place, then 
type, for example,
\index{delta@$\delta$}
The above will work for anything in which the first character is 
not alphabetical, e.g.
\index{cake@\emph{cake}}